1. Field of the Invention
The present invention relates to the field of computer network management. More specifically, the present invention relates to the management of data transfers between a host computer (or a peripheral device coupled to the host computer) and a network device. In one embodiment, the present invention relates to local area networks (LANs) using the Ethernet communication protocol (e.g., the IEEE 802.3 Standard) and systems using the IEEE 1394 serial communication bus standard.
2. Related Art
Networked communication systems ("networks") are very popular mechanisms for allowing multiple computers and peripheral systems to communicate with each other within larger computer systems. Local area networks (LANs) are one type of networked communication system and one type of LAN utilizes the Ethernet communication standard (IEEE 802.3). Computer systems can also communicate with coupled peripherals using different bus standards including the Peripheral Component Interconnect (PCI) bus standard and the Industry Standard Architecture (ISA) and Extended Industry Standard Architecture (EISA) bus standards. Recently, the IEEE 1394 serial communication standard has become a popular bus standard adopted by manufacturers of computer systems and peripheral components for its high speed and interconnection flexibilities. Moreover, network environments in which multiple communication protocols are utilized are becoming increasingly common. As such, efficient data transfer management in these network environments is essential to maximize the performance advantages that can be gained from the latest communication standards.
Despite the adoption of high performance bus standards and communication protocols, management of data transfers between different devices remains a resource intensive process. Stated differently, data transfer management tasks usually require much processing time of a processor which handles these tasks. The prior art typically implements data transfer management using the main processor in a host computer. For example, to transfer data from an internal disk drive to host memory, the host processor is responsible for reading the entire data block to be transferred from the disk drive and then writing the same block of data to host memory. While this prior art data transfer management method provides a mechanism for transferring data from one device to another, it consumes much resources of the host processor. In particular, the host processor has to actively manage the entire data transfer process and is frequently interrupted by read and write requests. These requests increase the time required to complete other computations because the host processor's availability to perform these computation is significantly reduced by the need to service the data transfer management requests. In other words, the high degree of involvement of the host processor in data transfer management adversely affects the performance of the host computer.
Moreover, due to the many communication standards available within computer systems and communication systems, it is often the case that one computer (or device) of one communication standard or "protocol" needs to communicate with another computer (or device) of another communication protocol. Unfortunately, data packet sizes are not necessarily compatible from one communication standard to another. For instance, the Ethernet communication standard supports a maximum packet size of 1.5 kilobytes (kB), while the IEEE 1394 communication standard ("1394") currently supports three different packet sizes 0.5 kB, 1.0 kB and 1.5 kB which correspond to three different physical data transfer speeds S100, S200 and S400. In the future, the 1394 protocol may support larger packet sizes up to 16 kB (16384 Bytes). However, since all 1394-compliant devices must support the basic physical speed of S100, all such devices must be able to communicate data in the basic packet size of 0.5 kB.
Device incompatibility with respect to packet size discrepancies among different communication protocols in network environments is more frequently encountered today due to recent industry trends to utilize new, high performance bus technology, such as the IEEE 1394 standard, in existing network environments which commonly utilize a different communication protocol, such as the Ethernet standard. In the prior art, data is typically transferred within a host computer between internal storage devices (e.g., disk drive) and memory (e.g., RAM) over an internal bus (e.g., a PCI bus). Since these internal data transfers involve a single communication standard (e.g., the PCI bus standard), the implementation of such internal transfers does not encounter packet size limitations. Thus, while the prior art provides a mechanism for internal data transfers, it does not address the issue of transferring data across different communication protocols with incompatible data packet sizes. As an example, using the prior art data transfer method, an Ethernet data packet larger than 0.5 kB cannot be transmitted over a 1394 bus operating at S100 speed and having a maximum packet size of 0.5 kB. In other words, these packet size limitations create incompatibility among different devices coupled to the same network. As such, the high speed and interconnection flexibilities of 1394 protocol cannot be fully utilized in a network which also has devices utilizing different communication protocols.
In addition to the incompatibility that arises from packet size discrepancies as described herein, it is appreciated that the data packet formats (e.g., data frame formats) between different communication standards are not necessarily compatible. A co-pending application entitled "A Method for Efficient Data Transfers Between Domains of Differing Data Formats" by Lo, et al. U.S. Ser. No. 09/085,135, assigned to the same assignee and filed concurrently with the instant application, is hereby incorporated by reference, and still pending.
Thus, there is a need for a data transfer management method which does not so heavily burden a host processor with managing data transfers as to adversely impact the performance of the host processor. A further need exists for a data transfer management method which is not constrained by data packet size within a network environment utilizing multiple communication protocols.